package com.mask.im.sdk.service;


import com.mask.im.sdk.dto.IMPushMessage;

import java.util.List;

/**
 * 消息发送服务接口
 *
 * @author jian
 */
public interface MessagePushService {

    /**
     * 推送消息
     *
     * @param pushMessage
     * @return 返回是否推送成功
     */
    <T> Boolean pushMessage(IMPushMessage<T> pushMessage);

    /**
     * 推送群组消息
     *
     * @param pushMessage
     * @return 返回未推送成功的人员
     */
    <T> List<Long> pushGroupMessage(IMPushMessage<T> pushMessage);

    /**
     * 校验用户是否在线
     *
     * @param userId 用户id
     * @return 是否在线
     */
    Boolean isOnline(Long userId);

    /**
     * 根据用户和设备查询用户是否在线
     *
     * @param userId
     * @param device
     * @return
     */
    Boolean isOnline(Long userId, String device);

    /**
     * 获取所有在线用户
     *
     * @return
     */
    List<Long> getAllOnlineUser();
}
    